package com.lingnan.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.lingnan.dto.HrCreateJobPositionParam;
import com.lingnan.dto.HrJobStatisticsDto;
import com.lingnan.dto.JobPositionPageDto;
import com.lingnan.dto.JobPositionQueryParam;

public interface HrJobPositionService {
    
    /**
     * HR创建职位信息
     */
    JobPositionPageDto createJobPosition(HrCreateJobPositionParam createParam, Long hrId, Long companyId);
    
    /**
     * 获取HR的职位列表
     */
    IPage<JobPositionPageDto> getHrPositions(int pageNum, int pageSize,
                                             JobPositionQueryParam queryParam, Long hrId);
    
    /**
     * HR更新自己的职位
     */
    JobPositionPageDto updateHrJobPosition(Long positionId, HrCreateJobPositionParam updateParam, Long hrId);
    
    /**
     * HR删除自己的职位
     */
    void deleteHrJobPosition(Long positionId, Long hrId);
    
    /**
     * 获取HR的职位统计信息
     */
    HrJobStatisticsDto getHrJobStatistics(Long hrId);
    
    /**
     * 验证HR是否有权限操作该职位
     */
    boolean checkHrPermission(Long positionId, Long hrId);
}